1. Field of the Invention
The invention relates to the field of gamut boundaries for color devices, and more particularly relates to the computation of a gamut boundary description for a color device.
2. Description of the Related Art
Gamut mapping is used to reproduce an image rendered by an input device on an output device, since the input device and the output device typically have different gamut boundaries with respect to each other. In other words, the gamut of colors that can be reproduced by the input device is typically not the same as the gamut of colors that can be reproduced by the output device. Gamut mapping can be used to render the image from within the input device gamut boundary to within the output device gamut boundary, so as to more accurately reproduce the color image on the output device.
Gamut mapping of image data from one gamut to another is typically performed using a gamut mapping algorithm, which is a particular method of mapping color data between gamuts. A gamut mapping algorithm often makes use of data that defines the boundaries of the color gamut of the input and the output devices, in order to obtain a reference between the two gamuts for appropriate gamut mapping of the image. Such data defining the gamut color boundary can be referred to as a gamut boundary description.
In measurement-based color management systems, the gamut boundary description is typically computed at run time. It is therefore preferred that the gamut boundary description be computed quickly and without significant impact on system resources, such as memory.
One convenient representation of a gamut boundary is as a set of convex, planar polygons. A well-known method to obtain such a set of bounding polygons is by computing the convex hull of device-independent colors associated with a set of color samples for the device. Although there are other ways to determine the bounding set of polygons given a set of sample values within the gamut volume, the convex hull is the preferred representation. When a measurement-based color management system uses a measurement-based color profile, an adequate set of sample values is typically provided by the color profile. However, when the measurement-based color management system uses a transform-based color profile (e.g., ICC profile), sample values in device-independent color space are not provided, and must therefore be separately computed.
One approach for obtaining the sample values used to compute the gamut boundary description is to select a set of sample values in the device-dependent color space of the device, and to convert the selected values to device-independent color space using a source transform, which converts colors from device-dependent color space to device-independent color space. The gamut boundary description can then be determined by taking a convex hull of the resulting device-independent color values.
Using this technique, the device-dependent color space is typically sampled from minimum to maximum in each of the different device colorant channels at a set interval. For example, given an RGB device, samples for each of R, G, and B can be taken from 0 to 255 in steps of 15, giving 17 separate steps in each of three dimensions. This calculates to 173, or 4913 samples.
However, the number of selected samples increases as the number of colorant channels increases. In a 6-channel device, for example, the number of samples increases to 176, or over 24 million samples. Since the step size (e.g., 17 steps per channel) is a decent control over the accuracy of the resulting gamut boundary, the foregoing technique requires substantially more computation time and resources when dealing with color devices with more than 3 channels.